package com.lyh.commom.BizException;

import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;

import java.util.Collection;
import java.util.Map;

/***
 * 业务异常抛出异常提示语
 * @author lyh
 */
public class BizExceptionUtils {

    /***
     * 业务抛出异常
     * @param object 判断对象
     * @param tip  提示语
     * @param isString  是否为 String  true 是
     */
    public static void isEmpty(Object object, String tip, boolean isString) {
        isEmpty(object, null, tip, isString);
    }


    /***
     * 业务抛出异常
     * @param object 判断对象
     * @param tip  提示语
     */
    public static void arrayIsEmpty(Object[] object, String tip) {
        if(object== null || object.length ==0){
            bizException(tip);
        }
    }

    /****
     * 判断集合是否为空
     * @param collection 集合
     * @param tip 提示语
     */
    public static void collectionIsEmpty(Collection<?> collection, String tip) {
        if (CollectionUtils.isEmpty(collection)) {
            bizException(tip);
        }
    }

    /****
     * 判断 map是否为空
     * @param map map
     * @param tip 提示语
     */
    public static void mapIsEmpty(Map map, String tip) {
        if (map == null || map.isEmpty()) {
            bizException(tip);
        }
    }

    /***
     * 根据condition  == true 抛异常
     * @param condition 条件
     * @param tip       提示语
     */
    public static void isTrue(Boolean condition, String tip) {
        if (condition) {
            bizException(tip);
        }
    }

    /****
     * 根据condition  == true 抛异常
     * @param condition 条件
     * @param errCode   业务异常代码编号
     * @param tip       提示语
     */
    public static void isTrue(Boolean condition, String errCode, String tip) {
        if (condition) {
            bizException(errCode, tip);
        }
    }

    /***
     * 业务抛出异常 可以自定义errno
     * @param object 要判断的对象
     * @param errno  业务异常代码编号
     * @param tip    提示语
     * @param isString  是否为String
     */
    public static void isEmpty(Object object, String errno, String tip, boolean isString) {
        if (object == null) {
            bizException(errno, tip);
        }
        if (isString) {
            if (StringUtils.isEmpty(object)) {
                bizException(errno, tip);
            }
        }
    }

    public static void bizException(String errno, String tip) {
        throw new BizException(errno, tip);
    }

    public static void bizException(String tip) {
        throw new BizException(tip);
    }

}
